/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.ugc.cnel.manabi.bakenbeans;

import com.icesoft.faces.context.effects.JavascriptContext;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;

/**
 *
 * @author Admin
 */
public class reporterBakenBean {

    private eventosBakenBean ventana;
    private navegacionBakenBean nav;
    private Integer mesNumero;
    private String mesLetra;
    private Integer anio = new GregorianCalendar().get(Calendar.YEAR);// new SimpleDateFormat().getCalendar().get(Calendar.YEAR);
    private Date fecha_inicio, fecha_final;

    /** Creates a new instance of reporterBakenBean */
    public reporterBakenBean() {
         GregorianCalendar gc=new GregorianCalendar();
         gc.setTime(new Date());
         this.mesNumero=gc.get(GregorianCalendar.MONTH)+1;
         this.mesLetra=new SimpleDateFormat("MMMM").format(new Date());
         
    }

    public navegacionBakenBean getNav() {
        return nav;
    }

    public void setNav(navegacionBakenBean nav) {
        this.nav = nav;
    }

    public eventosBakenBean getVentana() {
        return ventana;
    }

    public void setVentana(eventosBakenBean ventana) {
        this.ventana = ventana;
    }

    public void abrir_reporte(ActionEvent evt) {
        Integer anioActual = new GregorianCalendar().get(Calendar.YEAR);
        Integer mesActual = new GregorianCalendar().get(Calendar.MONTH) + 1;
        if (this.anio.compareTo(anioActual) == 0 && this.mesNumero > mesActual) {
            getVentana().setPopup_header("Advertencia");
            getVentana().setPopup_conten("No puede mostrar un reporte con un mes mayor al mes actual del año en curso");
            getVentana().setPopup_visible(true);
        } else {
            String url = "window.open('../imprimeReporte?mesletra=" + this.mesLetra + "&mesnumero=" + this.mesNumero + "&anio=" + this.anio + "');";
            JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), url);
        }
        //getVentana().setPopup_header("Hola");
        //getVentana().setPopup_conten("Luis Ulloa" + fecha_inicio +" "+ fecha_final);
        //getVentana().setPopup_visible(true);
    }

    public void change_evt_cmb_mes(ValueChangeEvent evt) {
        String opt=evt.getNewValue().toString();

        int opcion = Integer.parseInt(opt);
        switch (opcion) {
            case 1:
                this.mesLetra = "enero";
                break;
            case 2:
                this.mesLetra = "febrero";
                break;
            case 3:
                this.mesLetra = "marzo";
                break;
            case 4:
                this.mesLetra = "abril";
                break;
            case 5:
                this.mesLetra = "mayo";
                break;
            case 6:
                this.mesLetra = "junio";
                break;
            case 7:
                this.mesLetra = "julio";
                break;
            case 8:
                this.mesLetra = "agosto";
                break;
            case 9:
                this.mesLetra = "septiembre";
                break;
            case 10:
                this.mesLetra = "octubre";
                break;
            case 11:
                this.mesLetra = "noviembre";
                break;
            case 12:
                this.mesLetra = "diciembre";
                break;
        }
    }

    public Date getFecha_final() {
        return fecha_final;
    }

    public void setFecha_final(Date fecha_final) {
        this.fecha_final = fecha_final;
    }

    public Date getFecha_inicio() {
        return fecha_inicio;
    }

    public void setFecha_inicio(Date fecha_inicio) {
        this.fecha_inicio = fecha_inicio;
    }

    public Integer getAnio() {
        return anio;
    }

    public void setAnio(Integer anio) {
        this.anio = anio;
    }

    public String getMesLetra() {
        return mesLetra;
    }

    public void setMesLetra(String mesLetra) {
        this.mesLetra = mesLetra;
    }

    public Integer getMesNumero() {
        return mesNumero;
    }

    public void setMesNumero(Integer mesNumero) {
        this.mesNumero = mesNumero;
    }

    public void incrementAnio(ActionEvent evt) {
        SimpleDateFormat d = new SimpleDateFormat("dd/MM/yyyy");
        d.format(new Date());
        Integer a = d.getCalendar().get(Calendar.YEAR);
        if (this.anio.compareTo(a) != 0) {
            this.anio++;
        }
    }

    public void decrementAnio(ActionEvent evt) {
        this.anio--;
    }
}
